00001 /* -*- c -*- */ 00002 #ifndef INCLUDED_LIB3DS_LIGHT_H 00003 #define INCLUDED_LIB3DS_LIGHT_H 00004 /* 00005 * The 3D Studio File Format Library 00006 * Copyright (C) 1996-2001 by J.E. Hoffmann <je-h@gmx.net> 00007 * All rights reserved. 00008 * 00009 * This program is free software; you can redistribute it and/or modify it 00010 * under the terms of the GNU Lesser General Public License as published by 00011 * the Free Software Foundation; either version 2.1 of the License, or (at 00012 * your option) any later version. 00013 * 00014 * This program is distributed in the hope that it will be useful, but 00015 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 00016 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 00017 * License for more details. 00018 * 00019 * You should have received a copy of the GNU Lesser General Public License 00020 * along with this program; if not, write to the Free Software Foundation, 00021 * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00022 * 00023 * $Id: light.h,v 1.1 2005/03/07 11:16:26 Assassin Exp $ 00024 */ 00025 00026 #ifndef INCLUDED_LIB3DS_TYPES_H 00027 #include <lib3ds/types.h> 00028 #endif 00029 00030 #ifdef __cplusplus 00031 extern "C" { 00032 #endif 00033 00034 /*! 00035 * Light 00036 * \ingroup light 00037 */ 00038 struct _Lib3dsLight { 00039 Lib3dsLight *next; 00040 char name[64]; 00041 Lib3dsBool spot_light; 00042 Lib3dsBool see_cone; 00043 Lib3dsRgb color; 00044 Lib3dsVector position; 00045 Lib3dsVector spot; 00046 Lib3dsFloat roll; 00047 Lib3dsBool off; 00048 Lib3dsFloat outer_range; 00049 Lib3dsFloat inner_range; 00050 Lib3dsFloat multiplier; 00051 /*const char** excludes;*/ 00052 Lib3dsFloat attenuation; 00053 Lib3dsBool rectangular_spot; 00054 Lib3dsBool shadowed; 00055 Lib3dsFloat shadow_bias; 00056 Lib3dsFloat shadow_filter; 00057 Lib3dsIntw shadow_size; 00058 Lib3dsFloat spot_aspect; 00059 Lib3dsBool use_projector; 00060 char projector[64]; 00061 Lib3dsIntd spot_overshoot; 00062 Lib3dsBool ray_shadows; 00063 Lib3dsFloat ray_bias; 00064 Lib3dsFloat hot_spot; 00065 Lib3dsFloat fall_off; 00066 }; 00067 00068 extern LIB3DSAPI Lib3dsLight* lib3ds_light_new(const char *name); 00069 extern LIB3DSAPI void lib3ds_light_free(Lib3dsLight *mesh); 00070 extern LIB3DSAPI void lib3ds_light_dump(Lib3dsLight *light); 00071 extern LIB3DSAPI Lib3dsBool lib3ds_light_read(Lib3dsLight *light, Lib3dsIo *io); 00072 extern LIB3DSAPI Lib3dsBool lib3ds_light_write(Lib3dsLight *light, Lib3dsIo *io); 00073 00074 #ifdef __cplusplus 00075 }; 00076 #endif 00077 #endif 00078
1.3-rc3